let say:string ="hello";

function add(a:number,b:number):number{
    return a+b;
}
let num:number=add(3,4)


function isOdd(n:number):boolean{
    return n%3 ==0
}

let  nums:number[]; //定义成了数字型的数组
nums=[23,12,22]

let number:Array<number>=[3,4,5]

let u:object;
u={
    name:"afb",
}


// 命名的时候 比如一个数据是string 或者undefined类型的时候 使用 
 let lhname:string|undefined=undefined
   
 if(typeof name =='string') {
//    联合类型
 }


// never永远并不会结束
function throwError(msg:string):never{
    throw new Error(msg);
    // console.log()
}

function alwaysDoSomething():never{
    while(true){
        //表示永远不会结束
    }
}

//变量的never约束
let  arr:[]=[]


//字面量约
let a:"A";
// a="B";  //只能约束为某个值

let gender: "男" |"女"
// gender="男"ß

let user:{
    name:string,
    age:string
}
user.name='名称',
user.age='nan'

//元祖类型

let str:[number,string];

str=[3,'9']


// 类型别名
type User={
    name:string
    age:number
    gender:"男"|"女"
}
let us:User

us={
    name:'ces',
    age:12,
    gender:"女"
}

function getUser(g:User['gender']):User[]{
return []
}

getUser('女')